Natalie Mayer
  • Home
  • Portfolio
  • Resume

On this page

  • Introduction
  • Final Infographic
  • Ten Design Elements
  • Figure 2: California Water Rights Use by Decade
  • Figure 3: Aggregated Water Appropriations by Designated Use (1930-1999)
  • Putting it all together

Navigating California’s Water Rights

Author

Natalie Mayer

Introduction

California’s water rights system is a product of the state’s history, precipitation variability and scarcity, and competing socioeconomic demands. As one of the most water-stressed states in the United States, California faces ongoing challenges in balancing the needs of cities, farms, and ecosystems—especially during drought years. Water has shaped the state’s development for centuries, from fueling the Gold Rush economy to sustaining one of the world’s most productive agricultural industries and providing drinking water for millions of residents.

However, access to water is not equal. Those who hold the oldest, most senior water rights have a significant advantage, often dictating how water is distributed and who gets cut off first in times of shortage.

This led me to explore the question: How does California’s water rights system influence water availability and allocation across different sectors? Specifically,

  1. How does California’s legal framework for water rights compare to other states?

  2. Which water use sectors hold the most senior (older) rights?

  3. How has water appropriation for different sectors grown between 1930 and 1999?

To answer these, I analyzed data from the Har-DWR Cumulative Water Rights Curves (Lisk et al. 2023), which aggregated appropriated water flow rights by designated use in California. By visualizing this data, my goal is to highlight the uniqueness of California’s water rights system and reveal how historical water policies continue to shape who gets water—and who doesn’t—today.

Final Infographic

Ten Design Elements

  1. Graphic form: My first figure is a choropleth in which the colors represent the legal framework that governs water right appropriations in each of the United States. My second figure is a bar plot that shows the added water appropriations for different designated uses (domestic, environment, industrial, and agriculture) in each decade between the 1930s and 1990s. To create this data visualization, I summed and aggregated appropriated water flow (CFS) into the four included designated uses for each decade. My third and final figure is a line plot which shows how the cumulative appropriated water flows has grown between 1930 and 1999 for each of the four designated uses (environment, agriculture, domestic, and industry).

  2. Text: I aimed to minimize as much text as possible in the figures themselves, because I needed to include a few text boxes in the final infographic that explain the background information necessary to interpret the figures. I only included legends for the map and bar plot, because the bar plot legend and color palette matches the line plot’s. I did not include a title on the map, because the context is explained in the text box next to it, I color-coded the descriptive title for the bar plot to emphasize viewers’ attention to industrial and domestic use, and I simplified the title for the line graph to highlight that the differences between the information shown between line and bar plots. In the line plot, I also chose to modify the y-axis tick marks in from the default “100000” to “100K” format to reduce the data-ink ratio and improve simplicity. I opted to use color-coded labels in place of a legend to reduce viewer eye movement. I only included the data source in the bottom figure to avoid redundant text throughout the final infographic. I used text outside of the figures to explain California’s water rights system, define cubic feet per second, and emphasize to the reader the main takeaway from the graphic: “the majority of water rights in California are designated for industrial use”.

  3. Theme: I used a void theme on the map maximize simplicity by removing unnecessary grid lines and background elements, guiding the viewer to focus on the spatial patterns displayed in the choropleth. I used the classic theme for the bar plot and line plot to create a clean, minimalistic design with axis lines that help guide the viewer’s eye while focusing on the data. In the line plot, I also added qualitative y-axis labels and horizontal dotted lines to provide means of comparison for the viewer to interpret appropriated flow rates in cubic feet per second. I made these horizontal lines dotted, light gray, and behind the designated use lines, to indicate to the reader that this information is secondary should be looked at after observing the growth trends of each designated use.

  4. Typography: I kept the default sans serif font, because there was a lot of text on the final infographic, and I thought this was the easiest font to read on a screen, which is where my infographic will be viewed. The bar plot title is color-coordinated, highlighting industrial and domestic uses, which have more rights and older rights than the other two categories. I then used a serif font for the context provided in the textboxes in the infographic outside of the figures to provide contrast between the labels and titles of the figures and the paragraph style text.

  5. General Design: For the map, in addition to setting the theme to void to reduce data-ink ratio and reduce information overload, I made sure that the legend order matched the geographic order of legal frameworks to reduce viewer eye movement and improve ease of interpretability. Despite feedback that this bar plot may “be a bit overwhelming to interpret”, I opted to keep the bar plot unfaceted with bars of each designated use for each decade along the single x-axis. I felt that maintaining this structure was critical to communicating the primary of the message, that older rights trend more towards industrial and domestic use, whereas environmental water rights did not become popularized until the mid-1900s. For the line plot, I selected a theme with no gridlines to reduce the data-ink ratio, especially considering there are 6 lines representing data already on the figure. I added the dotted, gray, horizontal lines behind the solid designated use growth lines, to indicate to the viewer to look at this information after focusing on the primary message, the growth of appropriated water to the four designated uses. I kept the data source in the caption for this figure only because of its location in the bottom of the infographic, and removed it elsewhere to avoid redundant text.

  6. Context: The choropleth is meant to highlight that California’s legal framework is unique from the rest of the country. In general, eastern states operate under a riparian rights system and western states use prior appropriation. In the line plot, I added qualitative y-axis labels and the dotted, gray, horizontal lines to provide a point of reference for interpreting flow rates in cubic feet per second (CFS). Additional context is provided in the text boxes and figures included in the infographic: explanation of the history of California’s water rights system, that older water rights are more senior, that more senior water rights are prioritized when water is scarce, that industrial uses were granted more water rights between 1930-2000, and a pictures of the Oroville dam at maximum flow to create a visual for the qualitative y-axis labels in the line plot.

  7. Primary message: The primary message of the infographic is that California has a unique and imperfect water rights system which prioritizes older, more senior water rights and industrial uses. The purpose of the choropleth is that California is the only state that with existing water rights based on both riparian and prior appropriation legal systems. This is centered in the figure because California is a bright gold color, whereas the other states are shades of muted green. The purpose of the bar plot is to show which sectors have most of the older water rights. In general, industry and domestic water rights are more senior to agriculture and environmental rights. This is evident in the data. It is also emphasized in that industrial and domestic bars have the boldest colors, and the title states this key takeaway directly. The purpose of the line plot is to show how water-intensive the growth of industry was in the 1900s compared to other sectors. This is evident in the data and also stated explicitly in the figure subtitle.

  8. Colors: I chose the map colors with the intention of highlighting California apart from the other states. I wanted to make California gold, because the history of the water rights system in the state is closely tied to its history, in particular the Gold Rush in the late 1800s. I chose a deeper green to represent the riparian states, because this legal framework is more appropriate for regions where water is abundant, and a lighter and less-saturated green to represent western states that operate under prior appropriation where water is often scarce. The colors selected to represent each of the designated uses in the bar and line plots were based the standard color palette of the National Land Cover Database. It is typical to see residential areas represented in red, industrial in a dark gray, and agriculture in tan. I opted to represent the environment as blue, because typically environmental water rights are used to maintain in-stream flow or keeping water in the creeks or rivers where they would otherwise be diverted to sustain riparian plants, fish and other aquatic species.

  9. Accessibility: I considered color-blindness in selecting the colors by aiming to maximize contrast.

  10. DEI lens: This data does not represent people or communities, so I did not consider framing from a DEI perspective.

    Figure 1: Water Rights Systems for each State in the U.S.A

    The data used to create this map comes from Table 2.4 Framework of Western Surface Water Law and Table 2.5 Framework of Eastern Surface Water Law in Chapter 2 of “A Twenty-First Century US Water Policy” by Juliet Christian-Smith and Peter H. Gleick.

Figure 2: California Water Rights Use by Decade

Figure 3: Aggregated Water Appropriations by Designated Use (1930-1999)

Putting it all together

I created the infographic manually using Microsoft PowerPoint. I added each of the three figures to a blank slide and added supporting text and diagrams to highlight important takeaways and provide important background information to viewers.

To view the code used to create each of the three figures, click the drop down arrows below

Figure 1: Choropleth Map
Code
library(sf)

# load shapefile of US
shapefile <- read_sf(here("data", 
                          "shapefile", 
                          "s_18mr25.shp")) 

# create df of legal frameworks for each state
us_rights <- tibble(
  NAME = c("Arizona", "Colorado", "Idaho", "Montana", "Nevada", "New Mexico", 
            "Utah", "Wyoming", "Kansas", "North Dakota", "South Dakota", "Oregon", "Texas", 
            "Washington", "Nebraska", "Oklahoma", "New Hampshire", "Vermont", "Rhode Island", 
            "West Virginia", "Ohio", "Tennessee", "Missouri", "Louisiana", "Alabama", "Arkansas", 
            "Connecticut", "Delaware", "New York", "New Jersey", "Maryland", "Illinois", 
            "Indiana", "Iowa", "Kentucky", "Massachusetts", "Pennsylvania", "Mississippi", "Maine", "Michigan",
            "Minnesota", "North Carolina", "South Carolina", "Georgia", "Florida", 
            "Virginia", "Wisconsin", "California"),
  legal_framework = c(rep("Prior appropriation", 16), 
                        rep("Riparian", 31), 
                        "Combination"))

# join legal frameworks to shapefile
usa_states_joined <- left_join(shapefile, us_rights, by = "NAME") %>%
  drop_na(legal_framework) |>
  st_transform("ESRI:102003")

legal_framework_pal <- c("Riparian" = "#667b68", 
                         "Prior appropriation" = "#a3b899", 
                         "Combination" = "#ffcc5c") 


ggplot() + 
  geom_sf(data = usa_states_joined, 
          aes(fill = legal_framework), 
          color = "black", 
          size = 1) + 
  scale_fill_manual(values = legal_framework_pal) + 
  theme_void() + 
  labs(fill = " ", 
       title = "California has a unique legal framework for governing water rights", 
       subtitle = "In 1914, California transitioned from a Riparian to Prior appropriation framework.\nPre-1914 water rights are the most senior and valuable water rights in the state") +
  theme(legend.position = "bottom", 
        legend.text = element_text(size = 15, color = "black"),
        
        plot.title = element_text(face = "bold"))
Figure 2: Bar Plot
Code
# create color palette for water uses
water_use_pal <- c("Domestic" = "#9b1b34", 
                   "Environment" = "#93afce", 
                   "Industrial" = "#4a4343", 
                   "Agriculture" = "#d8a451")

# group cfs by decade and water use
ca_rights_use <- ca_rights %>%
  clean_names() %>%
  select(priority_date, cfs, water_use) %>%
  mutate(date = mdy(priority_date)) %>%
  mutate(date = if_else(year(date) > 2023, date - years(100), date)) %>%
  mutate(year = year(date))%>%
  filter(year > 1929) %>%
  filter(year < 2000) %>%
  mutate(decade = case_when(
    year %in% (1930:1939) ~ "1930s", 
    year %in% c(1940:1949) ~ "1940s", 
    year %in% (1950:1959) ~ "1950s", 
    year %in% c(1960:1969) ~ "1960s",
    year %in% (1970:1979) ~ "1970s", 
    year %in% c(1980:1989) ~ "1980s",
    year %in% c(1990:1999) ~ "1990s"
  )) %>%
  select(decade, cfs, water_use) %>%
  group_by(decade, water_use) %>%
  summarise(cfs = sum(cfs)) %>%
  ungroup() %>%
  filter(water_use != "other") %>%
  mutate(water_use = case_when(
    water_use %in% c("livestock", "irrigation") ~ "Agriculture",
    water_use %in% c("environmental", "fish") ~ "Environment",
    water_use == "industrial" ~ "Industrial",
    water_use == "domestic" ~ "Domestic")) %>%
  drop_na() %>%
  group_by(decade) %>%
  arrange(decade, desc(cfs)) %>%
  mutate(water_use = factor(water_use, levels = unique(water_use))) %>%
  ungroup()

# create bar chart of appropriated water for each use by decade
ggplot(data = ca_rights_use, 
       aes(x = decade, y = cfs, fill = water_use)) + 
  geom_col(position = "dodge") + 
  scale_fill_manual(values = water_use_pal) + 
  scale_y_continuous(labels = scales::label_number(accuracy = 1, scale = 0.001, suffix = "K"),
                     expand = c(0,0)) +
  theme_classic() + 
  labs(title = "Most California water rights granted in the 1930s were<br>appropriated for <span style='color:#4a4343;'>industrial</span> and <span style='color:#9b1b34;'>domestic</span> use",
       x = " ", 
       y = "Appropriated Water (CFS)", 
       fill = " ",
       caption = "Data Source: HarDWR - Cumulative Water Rights Curves (Lisk et al. 2023)") + 
  theme(
    plot.title = element_markdown(face = "bold", size = 16, , 
                                hjust = 0, 
                                margin = margin(0, 0, 0.5, 0, "cm")),
    plot.caption = element_text(hjust = 1, face = "italic"),
    
    legend.position = "bottom", 
    legend.text = element_text(size = 13),
    
    axis.text = element_text(color = "black"), 
    
    aspect.ratio = 0.333)
Figure 3: Line Plot
Code
# create a df of cumulative sum of appropriated cfs for each use by year
ca_rights_ts <- ca_rights %>%
  clean_names() %>%
  select(priority_date, cfs, water_use) %>%
  mutate(date = mdy(priority_date)) %>%
  mutate(date = if_else(year(date) > 2023, date - years(100), date)) %>%
  mutate(year = year(date)) %>%
  filter(year > 1929) %>%
  filter(year < 2000) %>%
  group_by(year, water_use) %>%
  summarise(cfs = sum(cfs)) %>%
  ungroup() %>%
  filter(water_use != "other") %>%
  mutate(water_use = case_when(
    water_use %in% c("livestock", "irrigation") ~ "Agriculture",
    water_use %in% c("environmental", "fish") ~ "Environment",
    water_use == "industrial" ~ "Industrial",
    water_use == "domestic" ~ "Domestic"
  )) %>%
  arrange(water_use, year) %>%  
  group_by(water_use) %>%     
  mutate(agg_cfs = cumsum(cfs)) %>%  
  ungroup()



y_breaks <- c(36000, 100000, 200000, 300000, 400000)
y_labels <- c("Max Flow from Oroville Dam", "100K", "200K", "300K", "Avg. Flow at Mouth of Amazon River")

# create line graph showing growth in annual appropriations of water by designated use
ggplot() + 
  geom_hline(aes(yintercept = 36000), color = "lightgray", linetype = "dashed") + # max oroville dam cfs
  geom_hline(aes(yintercept = 400000), color = "lightgray", linetype = "dashed") +
  geom_line(data = ca_rights_ts, 
            mapping = aes(x = year, y = agg_cfs, color = water_use), 
            linewidth = 1) +
  theme_classic() + 
  scale_y_continuous(expand = c(0,0),
                     breaks = y_breaks,
                     labels = str_wrap(y_labels, width = 18)) +
  scale_x_continuous(breaks = seq(min(ca_rights_ts$year), max(ca_rights_ts$year), by = 10), 
                     expand = c(0,0)) + 
  coord_fixed(ratio = 0.00008) + 
  scale_color_manual(values = water_use_pal) +
  labs(y = "Appropriated Water (CFS)", 
       x = " ") + 
  annotate(
    geom = "text", 
    x = 1993, 
    y = 415000,
    label = "Industrial",
    size = 3.5,
    color = "#4a4343") + 
  annotate(
    geom = "text", 
    x = 1994, 
    y = 255000,
    label = "Domestic",
    size = 3.5,
    color = "#9b1b34") + 
  annotate(
    geom = "text", 
    x = 1986, 
    y = 190500,
    label = "Environment",
    size = 3.5,
    color = "#93afce") + 
  annotate(
    geom = "text", 
    x = 1992, 
    y = 158000,
    label = "Agriculture",
    size = 3.5,
    color = "#d8a451") + 
  labs(title = "How much water was appropriated for each designated use\nin California between 1930 and 2000?",
       caption = "Data Source: HarDWR - Cumulative Water Rights Curves (Lisk et al. 2023)",
       color = "Water Use") + 
  theme(plot.title = element_text(face = "bold", hjust = 0, 
                                  margin = margin(0, 0, 0.5, 0, "cm")), 
        plot.caption = element_text(hjust = 1, face = "italic"),
        legend.position = "none",
        
        axis.text = element_text(color = "black"), 
        axis.title.y = element_text(margin = margin(t = 0, r = 10, b = 0, l = 0))
        )